/*
 * @Descripttion: 国际化入口文件
 * @Author: linwc
 * @Date: 2022-03-22 18:29:11
 * @LastEditors: xiaodong 565071984@qq.com
 * @LastEditTime: 2022-05-06 22:09:37
 */
import Vue from 'vue'
import VueI18n from 'vue-i18n'
import de from './de'
// import { Locale } from 'vant';
// import enUS from 'vant/lib/locale/lang/en-US';
// import zhCN from 'vant/lib/locale/lang/zh-CN';
import en from './en'
import zh from './zh'

Vue.use(VueI18n)

const messages = {
  en: {
    // ...enUS,
    ...en,
  },
  zh: {
    // ...zhCN,
    ...zh,
  },
  de: {
    // ...de,
    ...de,
  },
}

export function getLanguage() {
  // 获取缓存中的语言类型
  const chooseLanguage = localStorage.getItem('language')
  console.log('chooseLanguage', chooseLanguage)
  if (chooseLanguage === 'en') {
    document.getElementsByTagName('body')[0].className = chooseLanguage
  } else {
    document.getElementsByTagName('body')[0].className = ''
  }
  if (chooseLanguage) return chooseLanguage

  // if has not choose language
  const language = (
    navigator.language || navigator.browserLanguage
  ).toLowerCase()
  const locales = Object.keys(messages)
  for (const locale of locales) {
    if (language.indexOf(locale) > -1) {
      return locale
    }
  }
  return 'zh'
}

// 设置vant的语言
// Locale.use(getLanguage(), message[getLanguage()]);

const i18n = new VueI18n({
  // set locale
  // options: en | zh | es
  // 默认语言，这里的local属性，对应message中的zh、en属性
  locale: getLanguage(),
  // set locale messages
  // 这里的属性名是任意的，您也可以把zh设置为cn等，只是后续切换语言时
  // 要标识这里的语言属性，如：this.$i18n.locale = zh|en|zh|xxx
  messages,
  // 预设的语言环境（相当于默认语言，当前语言翻译不全时，使用预设语言文本）
  fallbackLocale: getLanguage(),
  silentTranslationWarn: true, // 在创建VueI18n实例时，可以添加这行代码配置，关闭waring提示信息。
})
// 设置当前语言
// i18n.locale = getLanguage()

export function i18nRender(key) {
  return i18n.t(`${key}`)
}

export default i18n
